home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MacMETH 3.2.3 / MacMETH Manual 1992 / HierSRC.DOC next >
Text File  |  1995-12-13  |  4KB  |  95 lines

  1. HierSRC 1.01 - Modula-2 Dependency Analyzer/jth June 93/af Nov 95
  2.  
  3. This tool analyses recursively all direct or indirect imports of a Modula-2 
  4. module.  It produces a dependency matrix of all modules involved and which 
  5. are available in source form.  
  6.  
  7. Usage
  8. -----
  9. This tool first prompts you for the name of the file which holds 
  10. the module you wish to analyze.  Additionally you may add optional 
  11. arguments specifying how to perform the analysis. Your input must be typed 
  12. according to the following syntax given in EBNF (Extended Backus Naur 
  13. Formalism):
  14.  
  15.        input ::= inputFile [ "/" option { option } ].
  16.        inputFile ::= moduleIdent "." ( "MOD" | "DEF" ).
  17.        option ::= "-" exclude | "+" combine.
  18.        exclude ::= string.
  19.        combine ::= string.
  20.        string ::= char { char }.
  21.        
  22. Note the strings 'exclude' respectively 'combine' specify a group of modules.
  23. For instance if you wish to ignore all modules from the analysis, which have a
  24. name which starts with 'DM', enter as the 'exclude' string 'DM'. For 
  25. instance enter the following to ignore all modules of the 'Dialog Machine':
  26.  
  27.  ...> MyModule.MOD/-DM
  28.   
  29. Note, any module which may be imported by such a module, e.g. if DMFiles 
  30. imports from module FileSystem, that the latter will also be excluded from 
  31. the analysis, unless there is another module involved which also imports 
  32. from FileSystem.
  33.  
  34. Alternatively, by entering a 'combine' string, you can specify a group of 
  35. modules to appear only as a single, sort of "Super"-module.  For instance 
  36. if you wish to combine all 'Dialog Machine' modules together in a single 
  37. entry in the output matrix, you can enter the combine string 'DM' as shown 
  38. in this example:
  39.  
  40.  ...> MyModule.DEF/+DM
  41.  
  42. Again, only the beginning of the module's names will be recognized. Finally 
  43. an example where several options are specified:
  44.  
  45.  ...> MyModule.MOD/+DM+Mat-ML
  46.  
  47. Above example will combine all modules whose names start with 'DM' or 'Mat' 
  48. into a super-module 'DMLib' respectively 'MatLib', and will ignore any 
  49. module starting with 'ML' from the analysis.  Hope this helps.
  50.  
  51.  
  52. Remark/Method
  53. -------------
  54. The tool scans recursively the import list of the input-file.  Traversal 
  55. stops at each branch if either no more modules are imported, or if a module 
  56. can't be found.  Files are found according to the paths specified in the 
  57. User.Profile (see Wirth et al., 1992).  
  58.  
  59. Note, this tool can also handle circular import structures.  The latter can 
  60. easily be detected, since circular imports will break the triangle shape of 
  61. one of the output matrices.  This tool tries always to sort the arrangement 
  62. of the modules in one of the output matrix such that a triangle matrix 
  63. results (of course only possible, if no circular imports are present). 
  64. Note, combining modules may lead to spurious, circular import structures, 
  65. which are in fact not really circular but are only caused by the 
  66. amalgamation of actually separate modules.
  67.  
  68. The dependency matrix is written to a file consisting of the moduleIdent 
  69. and with the extension "DEP", e.g.  "MyModule.DEP".  Unless modules are 
  70. combined, each row respectively column of the output matrices corresponds 
  71. to a single module.  The matrix' elements are either empty or marked with 
  72. an "X".  An "X" at the position [c,r] means that the module in column c 
  73. imports the module in the row r.
  74.  
  75. The matrix elements are separated by TAB (ASCII 9) characters.  Rows are 
  76. terminated with a EOL.  Note, this supports the viewing of the dependency 
  77. matrix within a spread-sheet program.
  78.  
  79. References
  80. ----------
  81. This tool is available via anonymous ftp from Internet host 
  82. "baikal.ethz.ch" (Internet address 129.132.80.130).  For further 
  83. information you may also wish to visit
  84.  
  85.       http://www.ito.umnw.ethz.ch/sysecol
  86.  
  87. Wirth, N., Gutknecht, J., Heiz, W., Schär, H., Seiler, H., Vetterli, C.  & 
  88. Fischlin, A., 1992.  MacMETH.  A fast Modula-2 language system for the 
  89.   Apple Macintosh.  User Manual.  4th, completely revised ed.  Department of 
  90.   Computer Sciences (ETH), Zürich, Switzerland, 116 pp.
  91.       
  92.       
  93. af 15/Nov/95
  94.  
  95.